/**
 *author:yhb
 */
package com.towker.frame.dao.rbac;

import java.util.*;
import org.springframework.stereotype.Repository;

import com.towker.core.db.*;
import com.towker.frame.model.rbac.RoleResource;

@Repository
public class RoleResourceDao extends BaseDao<RoleResource, Long>
{
	@SuppressWarnings("unchecked")
	@Override
	public Class getEntityClass()
	{
		return RoleResource.class;
	}

	/**
	 * 根据系统与角色删除所有角色资源分配记录
	 */
	public void delBySysidAndRoleid(long sysid, long roleid)
	{
		Map<String, Long> map = new HashMap<String, Long>();
		map.put("sysid", sysid); 
		map.put("roleid", roleid);
		this.getSqlSessionTemplate().delete(getIbatisMapperNamespace() + ".delBySysidAndRoleid", map);
	}
	
	/**
	 * 根据ids，批量删除角色资源分配。

	 * */
	public void delByIds(List<Long> list)
	{
		getSqlSessionTemplate().delete("RoleResource.delByIds", list);
	}
	
	/**
	 * 根据资源列表删除角色资源分配记录。

	 * */
	public void delRoleResByResidList(List<Long> residList)
	{
		this.getSqlSessionTemplate().delete("RoleResource.delRoleResByResidList", residList);
	}
	
	public void delRoleResourceByRoleid(Long roleid)
	{
		getSqlSessionTemplate().delete(getIbatisMapperNamespace()+".delRoleResourceByRoleid", roleid);
	}
	
	/**
	 * 根据系统删除所有的角色资源分配记录。

	 */
	public void delBySysid(long sysid)
	{
		this.getSqlSessionTemplate().delete("com.towker.frame.model.rbac.RoleResource.delBySysid", sysid);
	}
	
	public void delRoleResourceBySystemid(Long systemid)
	{
		this.getSqlSessionTemplate().delete(this.getIbatisMapperNamespace(), systemid);
	}

	/**
	 * 根据角色删除角色的所有资源分配记录

	 */
	public void delByRoleid(long roleid)
	{
		getSqlSessionTemplate().delete(getIbatisMapperNamespace() + ".delByRoleid", roleid);
	}

	/**
	 * 根据资源删除角色资源分配记录。

	 */
	public void delByResid(long resid)
	{
		this.getSqlSessionTemplate().delete("RoleResource.delByResid", resid);
	}

	/**
	 * 根据角色编号，获得该角色的所有角色资源分配。

	 * */
	public List<RoleResource> getRoleResByRoleid(long roleid)
	{
		return getSqlSessionTemplate().selectList("RoleResource.getRoleResByRoleid", roleid);
	}
}
